In the context of document management, a hypertext system is a system in which a document can contain links, also known as "hyperlinks," to locations within the same document and to other documents. Two examples of well known hypertext systems are Apple Corporation's Hypercard and the World Wide Web. A program used to view and navigate through a document containing links is generally referred to as a hypertext viewer. A hypertext viewer allows a user to quickly navigate through a document containing links by highlighting text and objects associated with links. When a user selects text or an object associated with a link, the hypertext viewer automatically scrolls the document to the location specified by the link. If a selected link references a document other than the document currently being viewed, then the referenced document is automatically loaded by the hypertext viewer.
Often, the location referenced by a link contains a link tag. The hypertext viewer simply scrolls to the link tag associated with a link when the link is selected. The use of link tags allows changes to be made to the document without affecting the destination of the existing links. However, other approaches to implementing links may also be used, such as having each link reference a page number or a relative offset within a document.
One application of hypertext systems to handle large documents has been the use of a hypertext-based "contents" section at the beginning of documents. Similar to a table of contents in a book or magazine, a hypertext-based contents section contains a list of entries corresponding to sections in the document which are directly accessible by the user. By selecting one of the contents entries, the document display is automatically scrolled to the document location containing the information associated with the selected entry. Hence, a hypertext-based contents section provides a user with direct access to various locations within the document without having to sequentially scroll through all of the preceding pages in the document.
Despite the advantages a hypertext-based contents section has over scrolling through a document page by page, a hypertext-based contents section is not without its disadvantages. Specifically, once a user has jumped into a particular section of the document, the hypertext-based contents section is no longer visible to the user since the hypertext-based contents section is typically located at the beginning of the document. Consequently, the user must return to the beginning of the document so that the hypertext-based contents section will be redisplayed before another hypertext-based contents section selection can be made.
A more flexible mechanism for navigating through a document is an outline which, like the hypertext-based contents section solution, provides direct access to particular sections of the document. Specifically, a hypertext-based outline is displayed which contains a list of entries containing links to various sections in the document. The outline entries provide direct access by a user to the listed sections of the document. However, unlike the contents section which is only accessible from the beginning of the document, the hypertext-based outline always remains visible and accessible to the user, regardless of the portion of the document being displayed. Typically, the hypertext-based outline is displayed in a separate display area from the display area containing the document. For example, in one implementation, the outline is displayed in an outline display frame on the left hand side of a display device while the document is displayed in a document display frame located on the right hand side of the display device. This arrangement allows the user to browse the document either sequentially from top to bottom using the document display frame, or randomly using the outline in the outline display frame.
As with the hypertext-based contents section, selecting an outline entry causes the hypertext viewer to scroll the document to the location specified by the link associated with the selected outline entry. However, since the outline always remains visible and accessible to the user in the outline display frame, regardless of the document portion displayed in the display frame, a user may jump directly to other locations in the document using the outline without having to return to the top of the document.
Although an outline has clear advantages over a contents section, there are limitations common to both the outline and contents section. One significant limitation is the resources required to update the outline or contents section when changes are made to the associated document. When a change is made to the contents or formatting of a document, an outline or contents section associated with that document must also be updated for it to remain accurate. For example, text may be added to or deleted from the document requiring the addition or deletion of entries (and links) to the outline or contents section associated with the document. Some types of documents, such as database reports, contain many pages of information and are frequently regenerated. Maintaining outlines or contents sections for these documents can require enormous resources and can become impracticable.
In view of the benefits provided by existing hypertext systems for reviewing large documents and the resources required to maintain outlines when the associated documents are frequently updated, a method and apparatus for automatically generating hypertext-based outlines for documents is highly desirable.